Service using multicast data transmissions from a single sender to multiple recipients is becoming increasing popular. Often such multicast data transmissions are sent to portable and wireless networking devices operating on public or private infrastructure or adhoc wireless networks, which can often experience a high level of demand and are prone to interference from RF sources resulting in high packet loss rates. Accordingly there is a need for reliable methods of error correction for a multicast message send over wireless networks.
Various error correction techniques are known for ensuring that data is transmitted from a sender to recipient without errors, even across unreliable networks. One common method, known as automatic repeat-request (ARQ) uses an error detection code transmitted with the sent data. The receiver uses the detection code to check for errors, and then requests that the sender retransmits erroneous or missing data. In its most simple form the receiver simply sends an acknowledgement of correctly received data and the sender retransmits anything not acknowledged within a reasonable period of time.
Another well-known error correction technique is channel erasure forward error correction (FEC) in which the date is encoded with redundancy and an error-correcting code (ECC) that enables the recipient to decode the data even if there is erroneous or missing data. The recipient never sends any messages back to the transmitter. The ECC is designed to accommodate the worst-case network conditions. In a channel erasure FEC coding scheme, for example, 100 packets of data are encoded to form 110 packets, which are transmitted over the network. The recipient only needs to receive 100 packets in order to decode the original data, thus the data can be reliably transmitted across a network having a data loss rate of up to 9%.
However, sending multiple unicast transmissions of the same data to multiple recipients or unnecessary redundant data can result in significant computational and network overhead.